iMouse键盘 输入回车
按下回车键。带上 key 时,先插入这段文本再按回车——一次调用完成"输入并发送"。
在聊天类 App 里这一条就是"发消息",在搜索框里就是"开始搜索"。
依赖手机上的 iMouse 键盘,不经过 USB 硬件
与 /key/* 那几条不同,/keyboard/* 是内核通过局域网直接把文本交给手机上的 iMouse 键盘。所以要求:
- 手机上已安装 iMouse 键盘(App Store),并在「设置 → 通用 → 键盘 → 添加新键盘」里添加、 打开「允许完全访问」
- 调用的那一刻,iMouse 键盘正处于前台激活状态——也就是光标在某个输入框里、 键盘已经弹出且当前键盘就是 iMouse 键盘
- 手机与内核所在的电脑在同一局域网
⚠️ 键盘一旦退到后台(比如按了主屏幕键),这几条会立刻返回 code=46 或 47。
这不是接口坏了,把光标点回输入框、切到 iMouse 键盘即可。
多设备与返回值
id 支持多个设备(逗号隔开);留空表示全部设备。
⚠️ 响应里只有一个 code,取的是第一台的结果——批量调用时,别拿它当"所有设备都成功了"的凭据。
⚠️ id 传了却匹配不到任何设备时返回 code=1(id不存在)。
key 是可选的,传与不传是两种行为- 不传
key→ 光按回车,不输入任何东西 - 传了
key→ 先把这段文本插入光标处,再按回车
⚠️ 回车在不同 App 里的行为由 App 自己决定:聊天框里是发送, 多行文本框里可能是换行。这条接口只负责把回车键送过去。
调用说明
- 请求参数
| 参数 | 类型 | 说明 | 备注 |
|---|---|---|---|
| fun | 字符串 | /keyboard/return | 请求功能名 |
| id | 字符串 | 设备唯一ID | 多个设备用逗号隔开;留空表示全部设备 |
| key | 字符串 | 回车前要先插入的文本 | 可选。不传则只按回车 |
- httpGet请求示例
curl --request GET \
--url 'http://192.168.9.9:9911/api/keyboard/return?id=5C:F7:E6:CE:65:22'
- httpPost json请求示例【websocket也可发送同样json请求】
curl --request POST \
--url http://192.168.9.9:9911/api \
--header 'Content-Type: application/json' \
--data '{
"fun": "/keyboard/return",
"data": {
"id": "5C:F7:E6:CE:65:22",
"key": "天气"
}
}'
上面这个例子等于在搜索框里输入 天气 然后回车搜索。
响应结果
{
"data": {
"code": 0,
"id": "5C:F7:E6:CE:65:22",
"message": "成功"
},
"status": 200,
"message": "成功",
"msgid": 0,
"fun": "/keyboard/return"
}
- 响应data数据字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 整数 | 见下表 |
| id | 字符串 | 请求里传的设备 id |
| message | 字符串 | code 对应的文字说明 |
- 错误码
| code | 含义 | 该怎么处置 |
|---|---|---|
| 0 | 成功 | —— |
| 1 | id不存在 | 检查设备 id;留空表示全部设备 |
| 44 | 密钥初始化失败 | 重启内核后重试 |
| 45 | 签名/序列化失败 | 参数里有无法序列化的内容 |
| 46 | 连接超时 | 确认 iMouse 键盘在前台、手机与电脑在同一局域网(见上方说明) |
| 47 | 连接被拒绝 / 不可达 | iMouse 键盘不在前台(键盘已收起,或切到了别的键盘) |
| 48 | 其他网络错误 | 检查手机与电脑是否在同一网段 |
| 49 | 请求体为空或字段缺失 | 必填参数没传,或传了空值 |
| 50 | 签名无效 / 时间戳过期 | 电脑与手机的系统时间相差过大 |
| 51 | 路径不存在 | 手机端 iMouse 键盘版本过旧,请到 App Store 更新 |
| 52 | 服务端错误 | 手机端 iMouse 键盘内部出错,重新弹出键盘后重试 |
| 53 | 其他HTTP错误 | —— |